package com.app.upgrader;

import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;

import com.zndroid.upgrader.UpgraderX;
import com.zndroid.upgrader.config.Displayer;
import com.zndroid.upgrader.config.UpdateConfiguration;
import com.zndroid.upgrader.listener.IUpgradeStatusListener;

/**
 * 一个简单好用的版本更新库
 * <p/>
 * <div>
 * 由于Android Q版本限制后台应用启动Activity，所以下载完成会发送一个通知至通知栏（忽略showNotification的值，需要允许发送通知）
 * <a href="https://developer.android.google.cn/guide/components/activities/background-starts"/>
 * </div>
 * <div>
 * 由于Android Q版本限制应用访问外部存储目录（访问需要同时满足两个条件详情见文档）所以Q版本以上不要设置下载目录
 * <a href="https://developer.android.google.cn/training/data-storage/files/external-scoped"/>
 * </div>
 * https://developer.android.google.cn/training/data-storage/files/external-scoped
 */

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private UpgraderX upgraderX;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle(R.string.app_title);
        findViewById(R.id.btn_5).setOnClickListener(this);
        findViewById(R.id.btn_6).setOnClickListener(this);
        //删除旧安装包
//        boolean b = ApkUtil.deleteOldApk(this, getExternalCacheDir().getPath() + "/ESFileExplorer.apk");
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_5:
                show();
                break;
            case R.id.btn_6:
                showCustom();
                break;
            default:
                break;
        }
    }

    private void showCustom() {
        String url = "https://wanandroid.com/blogimgs/2d120094-e1ee-47fb-a155-6eb4ca49d01f.apk";
        MyDownManager myDownManager = new MyDownManager(this);
        UpdateConfiguration configuration = new UpdateConfiguration()
                //输出错误日志
                .setEnableLog(true)
                //设置自定义的下载
                .setHttpManager(myDownManager)
                //下载完成自动跳动安装页面
                .setJumpInstallPage(false)
                //设置对话框背景图片 (图片规范参照demo中的示例图)
                //.setDialogImage(R.drawable.ic_dialog)
                //设置按钮的颜色
                //.setDialogButtonColor(Color.parseColor("#E743DA"))
                //设置对话框强制更新时进度条和文字的颜色
                //.setDialogProgressBarColor(Color.parseColor("#E743DA"))
                //设置按钮的文字颜色
                .setDialogButtonTextColor(Color.WHITE)
                //设置是否显示通知栏进度
                .setShowNotification(true)
                //设置是否提示后台下载toast
                .setShowBgdToast(false)
                //设置强制更新
                .setForcedUpgrade(true)//设置强更会自动跳转到安装界面，setJumpInstallPage参数将会无效，对话框的话点击外部区域将不可取消对话框显示
                //设置展示方式 DIALOG（默认）、NOTIFICATION、CUSTOM（自定义需要实现 IDisplayer接口）
                .setDisPlayer(Displayer.NOTIFICATION)
                //在 DisPlayer == DIALOG 对话框显示的情况下 设置对话框仅作为更新提示使用，后台进行静默下载（NOTIFICATION）可见
                .setOnlyDialogTip(false);

        upgraderX = UpgraderX.getInstance(this);
        upgraderX.setApkName("test2.apk")
                .setApkUrl(url)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setShowNewerToast(true)
                .setConfiguration(configuration)
                .setApkVersionCode(2)
                .setApkVersionName("2.1.8")
                .setApkSize("7.3")
                .setApkDescription(getString(R.string.dialog_msg))
//                .setApkMD5("DC501F04BBAA458C9DC33008EFED5E7F")
                .download();
    }

    private void show() {
        String url = "https://wanandroid.com/blogimgs/2d120094-e1ee-47fb-a155-6eb4ca49d01f.apk";
        UpdateConfiguration configuration = new UpdateConfiguration()
                //输出错误日志
                .setEnableLog(true)
                //设置自定义的下载
                //.setHttpManager()
                //下载完成自动跳动安装页面
                .setJumpInstallPage(false)
                //设置对话框背景图片 (图片规范参照demo中的示例图)
                //.setDialogImage(R.drawable.ic_dialog)
                //设置按钮的颜色
                //.setDialogButtonColor(Color.parseColor("#E743DA"))
                //设置对话框强制更新时进度条和文字的颜色
                //.setDialogProgressBarColor(Color.parseColor("#E743DA"))
                //设置按钮的文字颜色
                .setDialogButtonTextColor(Color.WHITE)
                //设置是否显示通知栏进度
                .setShowNotification(true)
                //设置是否提示后台下载toast
                .setShowBgdToast(false)
                //设置强制更新
                .setForcedUpgrade(false)
                .setOnlyDialogTip(false)
                .setButtonClickListener(new IUpgradeStatusListener() {
                    @Override
                    public void onButtonClick(int id) {
                        Log.i("update", "clicked= " + id);
                    }
                });

        upgraderX = UpgraderX.getInstance(this);
        upgraderX.setApkName("test2.apk")
                .setApkUrl(url)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setShowNewerToast(true)
                .setConfiguration(configuration)
                .setApkVersionCode(2)
                .setApkVersionName("2.1.8")
                .setApkSize("7.3")
                .setApkDescription(getString(R.string.dialog_msg))
//                .setApkMD5("DC501F04BBAA458C9DC33008EFED5E7F")
                .download();
    }
}
